using System;
using System.Collections.Generic;

namespace libcharakter
{
	namespace Talente
	{
		namespace Natur
		{
			[Serializable]
			public class NaturTalent : abTalent
			{
				public NaturTalent (string name, int value, Charakter charakter) : base(name, value, TalentType.Natur, TableColum.B, charakter) { }
				public override bool Probe (Eigenschaften eg, int wert1, int wert2, int wert3, int erschwert, ref int rest) { return false; }
			}
			[Serializable]
			public class Faehrtensuchen : NaturTalent
			{
				public Faehrtensuchen (int value, Charakter charakter) : base("Fährtensuchen", value, charakter) { }
				public override bool Probe (Eigenschaften eg, int wert1, int wert2, int wert3, int erschwert, ref int rest)
				{
					if(Probe (eg["Klugheit"], eg["Intuition"], eg["Konstitution"], wert1, wert2, wert3, erschwert, ref rest))
						return true;

					return Probe(eg["Klugheit"], eg["Intuition"], eg["Intuition"], wert1, wert2, wert3, erschwert, ref rest);
				}
			}
			[Serializable]
			public class Fallenstellen : NaturTalent
			{
				public Fallenstellen(int value, Charakter charakter) : base("Fallenstellen", value, charakter) { }
				public override bool Probe (Eigenschaften eg, int wert1, int wert2, int wert3, int erschwert, ref int rest)
				{
					return Probe (eg["Klugheit"], eg["Fingerfertigkeit"], eg["Koerperkraft"], wert1, wert2, wert3, erschwert, ref rest);
				}
			}
			[Serializable]
			public class FesselnEntfesseln : NaturTalent
			{
				public FesselnEntfesseln(int value, Charakter charakter) : base("Fesseln/Entfesseln", value, charakter) { }
				public override bool Probe (Eigenschaften eg, int wert1, int wert2, int wert3, int erschwert, ref int rest)
				{
					return Probe (eg["Fingerfertigkeit"], eg["Gewandheit"], eg["Koerperkraft"], wert1, wert2, wert3, erschwert, ref rest);
				}
			}
			[Serializable]
			public class FischenAngeln : NaturTalent
			{
				public FischenAngeln(int value, Charakter charakter) : base("Fischen/Angeln", value, charakter) { }
				public override bool Probe (Eigenschaften eg, int wert1, int wert2, int wert3, int erschwert, ref int rest)
				{
					return Probe (eg["Intuition"], eg["Fingerfertigkeit"], eg["Koerperkraft"], wert1, wert2, wert3, erschwert, ref rest);
				}
			}
			[Serializable]
			public class Orientierung : NaturTalent
			{
				public Orientierung(int value, Charakter charakter) : base("Orientierung", value, charakter) { }
				public override bool Probe (Eigenschaften eg, int wert1, int wert2, int wert3, int erschwert, ref int rest)
				{
					return Probe (eg["Klugheit"], eg["Intuition"], eg["Intuition"], wert1, wert2, wert3, erschwert, ref rest);
				}
			}
			[Serializable]
			public class Wettervorhersagen : NaturTalent
			{
				public Wettervorhersagen(int value, Charakter charakter) : base("Wettervorhersagen", value, charakter) { }
				public override bool Probe (Eigenschaften eg, int wert1, int wert2, int wert3, int erschwert, ref int rest)
				{
					return Probe (eg["Klugheit"], eg["Intuition"], eg["Intuition"], wert1, wert2, wert3, erschwert, ref rest);
				}
			}
			[Serializable]
			public class Wildnisleben : NaturTalent
			{
				public Wildnisleben(int value, Charakter charakter) : base("Wildnisleben", value, charakter) { }
				public override bool Probe (Eigenschaften eg, int wert1, int wert2, int wert3, int erschwert, ref int rest)
				{
					return Probe (eg["Intuition"], eg["Gewandheit"], eg["Konstitution"], wert1, wert2, wert3, erschwert, ref rest);
				}
			}
		}
	}
}

